Network management for elastic virtual network functions

ABSTRACT

A method includes, with a Virtual Network Function (VNF) manager that manages a VNF that includes plurality of VNF components running on a plurality of virtual machines, determining that an additional VNF component should be provisioned on an additional virtual machine. The method further includes, in response to the determining that the additional VNF component should be provisioned, instructing a compute controller to provision the additional virtual machine. The method further includes instructing a Software-Defined Networking (SDN) controller to connect the additional virtual machine to a network that interconnects the VNF components, and provisioning the additional VNF component on the additional virtual machine.

PRIORITY INFORMATION

This application is a non-provisional application that claims priorityto Provisional Application No. 62/245,115 filed Oct. 22, 2015 andentitled “Network Management for Elastic Virtual Network Functions,” thedisclosure of which is hereby incorporated by reference in its entirety.

BACKGROUND

The present disclosure relates generally to Network FunctionsVirtualization (NFV), and more particularly to methods and systems formanaging networks for elastic Virtual Network Functions (VNFs).

NFV is a concept that involves virtualization of varioustelecommunication functions that are then interconnected to providetelecommunication services. Particularly, specific telecommunicationfunctions that are typically performed by specialized pieces of hardwareare replaced with a virtualization of such hardware. One example of suchhardware is a Session Border Controller (SBC). The virtualized functionsthat would otherwise be performed by such hardware are referred to asVirtual Network Functions (VNFs).

NFV can utilize various computing and networking technologies such ascloud computing and Software-Defined Networking (SDN). Cloud computingtypically involves several physical computing systems that, through theuse of a hypervisor, present virtual machine environments for use byguest operating systems. The guest operating systems can runapplications as a physical computing system does. Applications relatedto VNFs can be run on such guest operating systems.

SDN is an approach to networking that separates the control plane fromthe data plane. By contrast, a legacy system may include severalindependently configured routers, whereas a system implementing SDN mayinclude a central management component that makes decisions as to wheretraffic should be sent and then directs underlying systems to routenetwork traffic as appropriate. SDN concepts can be used in the physicalnetworks that interconnect the physical computing systems that provide avirtual machine environment.

SUMMARY

A method includes, with a Virtual Network Function (VNF) manager thatmanages a VNF that includes plurality of VNF components running on aplurality of virtual machines, determining that an additional VNFcomponent should be provisioned on an additional virtual machine. Themethod further includes, in response to the determining that theadditional VNF component should be provisioned, instructing a VirtualInfrastructure Manager (VIM) to provision the additional virtualmachine. The method further includes instructing a Software-DefinedNetworking (SDN) controller to connect the additional virtual machine toa network that interconnects the VNF components, and provisioning theadditional VNF component on the additional virtual machine.

A method includes managing a Virtual Network Function (VNF) thatincludes a plurality of VNF components, the VNF components beinginterconnected over a network. The method further includes, in responseto utilization of current capacity of the VNF exceeding a definedthreshold, instructing a Virtual Infrastructure Manager (VIM) toprovision an additional virtual machine. The method further includesinstructing a Software-Defined Networking (SDN) controller to connectthe additional virtual machine to the network and provisioning anadditional VNF component on the additional virtual machine.

A system includes a processor and a memory comprising machine readableinstructions that when executed by the processor, cause the system tomanage a Virtual Network Function (VNF) that includes a plurality of VNFcomponents, the VNF components being interconnected over a network. Thesystem is further to instruct a Virtual Infrastructure Manager (VIM) toprovision an additional virtual machine in response to utilization ofcurrent capacity of the VNF exceeding a defined threshold, instruct aSoftware-Defined Networking (SDN) controller to connect the additionalvirtual machine to the network, and provision an additional VNFcomponent on the additional virtual machine.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are best understood from the followingdetailed description when read with the accompanying figures.

FIG. 1 is a diagram showing network function virtualization, accordingto one example of principles described herein.

FIG. 2 is a diagram showing software-defined networking, according toone example of principles described herein.

FIG. 3 is a diagram showing elasticity of VNF components, according toone example of principles described herein.

FIG. 4 is a signal diagram showing an illustrative method forestablishing network connections to dynamically created VNF components,according to one example of principles described herein.

FIG. 5 is a diagram showing communication between SDN controllers,according to one example of principles described herein.

FIG. 6 is a flowchart showing an illustrative method for establishingnetwork connections to dynamically created VNF components, according toone example of principles described herein.

In the figures, elements having similar designations may or may not havethe same or similar functions.

DETAILED DESCRIPTION

In the following description, specific details are set forth describingsome embodiments consistent with the present disclosure. It will beapparent, however, to one skilled in the art that some embodiments maybe practiced without some or all of these specific details. The specificembodiments disclosed herein are meant to be illustrative but notlimiting. One skilled in the art may realize other elements that,although not specifically described here, are within the scope and thespirit of this disclosure. In addition, to avoid unnecessary repetition,one or more features shown and described in association with oneembodiment may be incorporated into other embodiments unlessspecifically described otherwise or if the one or more features wouldmake an embodiment non-functional.

As described above, NFV utilizes several virtual machines in a cloudcomputing environment to perform telecommunication functions that werepreviously provided by specialized pieces of hardware. One benefit ofNFV is that it provides elasticity. A VNF typically includes several VNFcomponents. In some cases, each VNF component may be running on adifferent virtual machine. In some cases, some VNF components may besimilar instances of the same application. Such instances may handle upto a certain capacity of telecommunication services. As demand forservices changes, the number of VNF components can change as well. Forexample, if demand increases to a certain percentage of overall capacityfor the VNF, an additional VNF component can be created to increase theoverall capacity of the VNF. Conversely, if demand decreases below acertain percentage of overall capacity for the VNF, a VNF component canbe removed. This frees up computing resources for other applicationswithin the cloud computing environment.

According to principles described herein, when a new VNF component iscreated, an SDN controller is used to connect that VNF component toother VNF components and other network components to allow for efficientand full operation of the new VNF component. For example, there may beone VNF component that acts as a database for all other VNF components.There may be another VNF component that acts as a load balancer forother VNF components. The new VNF component is connected to such otherVNF components through use of the SDN controller.

In one example, after a new virtual machine is provisioned for use by aVNF component, a VNF manager instructs the SDN controller to connect thenew virtual machine to the network that interconnects the VNFcomponents. Such network may be a virtual network that providesconnections between the VNF components as well as a connection toexternal network components being served by the VNF. The SDN controllerconnects the new virtual machine to the other VNF component by creatingtraffic flow rules for various components of the virtual network. TheVNF manager can then provision the new VNF component on the new virtualmachine.

Using SDN in this manner to interconnect new VNF components providesvarious advantages. For example, it allows the elasticity of a VNF to beutilized more efficiently. This, in turn, consumes less computingresources and less human administration resources.

FIG. 1 is a diagram showing network function virtualization 100.According to the present example, a Network Function VirtualizationInfrastructure (NFVI) 102 is used to provide network functionvirtualization 100. The NFVI 102 provides the infrastructure for anumber of VNFs 120. Both the VNFs 120 and the NFVI 102 are managed by anNFV management module 130.

The NFVI 102 includes a set of physical resources 104 that are used toprovide a set of virtual resources 112. The physical resources 104include computing resources 106, storage resources 108, input/outputresources, and network resources 110. The physical resources 104 aretypically embodied as a plurality of physical computing systems,sometimes referred to as servers, within a datacenter. For example, adatacenter may include several servers that are positioned on racks andinterconnected via physical network cables. Each of the servers includeshardware including a physical processor, a memory, and a networkinterface. Some servers may be designed primarily for processing powerand some servers may be designed primarily for storage. In one example,the servers are commodity servers that include a number of physicalprocessors, such as x86 processors. The servers utilize an operatingsystem, such as Linux, to provide various applications with access tothe hardware of the servers. More specifically, the operating systemwill schedule processing tasks on the physical processor of the serverand allocate physical memory for use by the application.

The computing resources 106 include a plurality of processors within aplurality of physical computing systems. The processors are designed toprocess machine readable instructions to perform specifically designedtasks. The processors can be designed to work together to provideparallel processing capabilities.

The storage resources 108 include various types of memory. Some types ofmemory, such as non-volatile types of memory, typically have largestorage volume but relatively slow performance. The storage resources108 may include a series of hard disk drives or solid state drives thatstore data in the form of machine readable instructions as well as largeamounts of data. The storage resources 108 may also include volatileforms of memory, such as those used for Random Access Memory (RAM),which are optimized for speed and are often referred to as “workingmemory.”

The network resources 110 include the physical network infrastructurethat provides communication between the physical computing systems aswell as to an external network such as the Internet. The physicalnetwork infrastructure includes the physical cables, such as Ethernet orfiber optic, that connect the physical systems to routers, switches, andother networking equipment that provides the desired interconnectivity.

The physical resources 104 use hypervisors to provide a virtualcomputing environment that provides the virtual resources 112.Specifically, the hypervisors provide virtual hardware to guestoperating systems. A physical computing system may provide one or morevirtual machines for use by guest operating systems. The virtualresources 112 include virtual computing resources 114, virtual storageresources 116, and virtual network resources 118. Such virtual resources112 may emulate their underlying physical resource counterparts.

The virtual computing resources 114 include virtual processors thatexecute machine readable instructions as a physical processor does. Thehypervisor then maps the execution of those instructions to execution ofinstructions on a physical processor. The architecture of the virtualprocessor does not necessarily have to match the architecture of theunderlying physical processor, which allows a variety of instruction setarchitectures to be used for various virtual machines.

The virtual storage resources 116 include short term and long termstorage services. Specifically, the virtual machines may include virtualmemory that is then mapped to physical memory by the hypervisor. Theredoes not necessarily have to be a one-to-one mapping of virtual memoryto physical memory. For example, two gigabytes of virtual working memorymay be mapped to only one gigabyte of working memory in the physicalsystem. Various paging techniques are then used to swap physical memoryfrom working memory to a volatile storage memory to allow for suchmapping.

Each virtual machine may run a guest operating system. The guestoperating system may be similar to a host operating system. For example,the guest operating system may also be Linux. The guest operating systemruns applications and provides such applications with access the virtualhardware of the virtual machines. For example, the guest operatingsystem schedules processing tasks associated with the applications onthe virtual processor. The guest operating system also provides theapplication with access to virtual memory associated with the virtualmachines.

When the guest operating system provides applications running thereonwith access to the virtual resources, the hypervisor of the underlyingphysical computing systems then maps those resources to the underlyingphysical resources. For example, when an application running on theguest operating system stores data in virtual memory, the hypervisoruses a translates a virtual memory address into a physical memoryaddress and the data is stored at that physical memory address. When theguest operating system schedules processing tasks for execution on thevirtual processor, the hypervisor translates those processing tasks intoexecutable instructions for the physical processor.

The virtual machines that are provided as part of the virtual resources112 can be interconnected to each other through one or more virtualnetworks that make up the virtual networking resources 118. Such virtualnetworks emulate physical networks. Virtual networks may include anumber of machines, both physical and virtual, that are assigned avirtual network address. The virtual networks can also isolate sets ofvirtual machines as desired. This can be helpful if some virtualmachines are owned and/or operated by one entity and other virtualmachines are owned and/or operated by another entity.

The NFVI 102 is managed by a virtual infrastructure manager 124, whichis part of the NFV management module 130. The infrastructure manager 124may include hardware, software, or a combination of both to performvarious management functions. For example, the infrastructure manager124 may be an application that resides on one or more physical machinesand can receive input from human administrators as well as othermanagement functions. The infrastructure manager 124 can then manage thephysical and virtual environment as appropriate. For example, if it isdetermined that more virtual machines are desired, then theinfrastructure manager 124 can send an instruction to the NFVI to createan additional virtual machine and configure it for use by whateverentity uses that virtual machine. Additionally, the infrastructuremanagement can cause the physical computing systems to enter standbymode if less physical computing power is desired. The infrastructuremanager 124 can also take such physical computing systems out of standbymode when more computing power is desired.

In the present example, the virtual infrastructure manager 124 includestwo components. Specifically, the infrastructure manager 124 includes acompute controller 134 and an SDN controller 132. The compute controller134 is responsible for managing the cloud computing environment providedby the virtual resources 112 of the NFVI 102. One example of a virtualinfrastructure manager 134 includes the open-source cloud computingsoftware platform provided by the Openstack Foundation under the nameOpenStack™.

The SDN controller 132 is used to control the network resources of theNFVI 102. The SDN controller 132 may control both the physical networkresources 110 and the virtual network resources 118. As will bedescribed in further detail below, the SDN controller 132 receivesinstructions from various applications for how to configure the networkinfrastructure.

As described above, a VNF 120 represents a virtualization of specifictelecommunication functions that are typically performed by specializedpieces of hardware. Examples of a VNF 120 include, but are not limitedto, an SBC, an Internet Protocol (IP) Multimedia Subsystem (IMS) networkfunction, or a telephony application server. A VNF 120 may include anumber of components, or instances of an application, that run withinthe virtual machine environment. Such applications are designed toemulate the specialized pieces of telecommunication hardware. Thus,instead of setting up a new physical piece of specialized equipment, aservice provider can simply spin up a virtual machine environment andrun applications. Each VNF 120 has a corresponding Element ManagementSystem (EMS) 122. The EMS 122 includes a user interface, or a dashboard,that allows an administrator to configure the VNF 120 as desired. Toprovide full NFV, several VNFs work together to provide the desiredservices. In the present example, a plurality of VNFs 120-1, 120-2 . . .120-n and corresponding EMSs 122-1, 122-2 . . . 122-n are used toprovide network functions within NFV.

A VNF 120 typically includes several different components, which may ormay not be identical, that together form the full VNF 120. For example,the different components may be different instances of the VNFapplication. The different instances then work together to provide thefunctionality of the full VNF 120. Multiple VNFs 120 are then used inconcert to provide a telecommunication network for a telecommunicationservice. A telecommunications network is an infrastructure that providescommunication services between multiple subscribers. One example of acommunication service is a Voice over IP (VoIP) service. Such servicestypically include several pieces of specialized hardware that performspecific network functions. However, according to principles describedherein, the VNF 120 provides such functions instead of a specializedpiece of hardware.

A VNF 120 may be part of a telecommunications core network. The corenetwork is the central part of a telecommunications networks. The corenetwork provides various communication services to the subscribers suchas voice communication. Subscribers are connected to the core networkthrough an access network, which will be described in further detailbelow.

The VNFs 120 are managed by a VNF manager 126, which is part of the VNFmanagement module 130. In some cases, there may be multiple VNF managers126, each managing one or more specific VNFs 120. The VNF manager 126can manage the VNFs based on network demand. For example, at peak times,the VNF manager 126 can start up new instances of VNF components toscale dynamically according to demand. While there may be several VNFmanagers 126, there is a single orchestrator 128 that manages the VNFmanagers 126 and thus manages the entire NFV service.

FIG. 2 is a diagram showing software-defined networking 200. Asdescribed above, SDN 200 is a concept in which the control plane isseparated from the data plane each of which is under software control.Accordingly, SDN 200 includes an infrastructure layer 210, a virtualinfrastructure manager 206, and an application layer 202. Theinfrastructure layer 210 includes a number of network components 212.Such network components 212 may include physical routers, switchers, andother packet handling hardware. The infrastructure layer 202 thusincludes the resources to move data packets between different computingsystems. The infrastructure layer 210 also includes compute components213 that process data.

In a virtual computing environment, different virtual machines may beinterconnected over a virtual network. The virtual network may includevirtual routers, virtual switches, and other virtual hardware that isused to handle data packets. Such virtual hardware may also be includedwithin the network components 212 that make up the infrastructure layer210.

The network components 212 of the infrastructure layer 210 are incommunication with an SDN controller 208 of the virtual infrastructuremanager 206. The SDN controller 208 corresponds to the SDN controller132 described above. The SDN controller 208 instructs each of thenetwork components 212 how to direct network traffic. For example, theSDN controller 208 can provide a network component 212 with forwardingtables that instruct the network component 212 how to forward datapackets headed for certain destinations. The SDN controller 208 is ableto quickly and dynamically manage and adjust the network of theunderlying infrastructure layer 202. The SDN controller 208 abstractsthe implementation of network management to applications within theapplication layer 202. The virtual infrastructure manager 206 alsoincludes a compute controller 209 that corresponds to the computecontroller 134 described above.

The application layer 202 includes the applications that interface withthe virtual infrastructure manager 206 to instruct an SDN controller 208how a network should be configured. Specifically, the SDN controller 208provides an Application Programming Interface (API) to applications ofthe application layer 202. The applications instruct the SDN controller208 how to configure the network for the purposes of the applications.In the present example, one of the applications in the application layer202 is a VNF manager 204. The VNF manager 204 corresponds to the VNFmanager 126 described above.

As will be described in further detail below, the VNF manager 204 cancommunicate with the SDN controller 208 and instruct the SDN controller208 to establish new connections between a new virtual machine and othervarious virtual machines associated with a VNF (e.g. 120, FIG. 1). Theprecise details for such connections are abstracted by the SDNcontroller 208 from the VNF manager 204. Such virtual machines and othercomponents of the virtual network that interconnect the virtual machinesare part of the infrastructure layer 202.

FIG. 3 is a diagram showing elasticity of VNF components. According tothe present example, a VNF 314 is managed by a VNF manager 310. The VNFmanager 310 is in communication with an EMS 312. The VNF manager 310corresponds to the VNF managers 126, 204 described above. The VNF 314includes a number of VNF components 304, 306, 308. There are differenttypes of VNF components 304, 306, 308. Specifically, the VNF 314includes a database component 304, a load balancer component 306, and aplurality of service components 308. Each VNF component 304, 306, 308may run on a different virtual machine 302. The VNF componentsillustrated herein are examples. Other types of VNF components may beused in accordance with principles described herein.

In the present example, the database component 304 runs on virtualmachine 302-1. The database component 304 stores a variety of data thatis used by other VNF components. For example, the database component 304may include subscriber related data for at least a subset of thesubscribers of the telecommunication service associated with the VNF314. While only a single database component 304 is shown, some examplesmay include additional database components 304. The database component304 is connected to the service components 308 through connections 316.The connections 316 are part of a virtual network associated with theVNF 314.

In the present example, the load balancer component 306 runs on virtualmachine 302-2. The load balancer component 306 balances the workload ofthe VNF 314 between the service component instances 308. The loadbalancer component 306 may also act as an access point between the corenetwork to which the VNF 314 belongs and the access network. The accessnetwork is the part of a telecommunications network that connects asubscriber's communication device (e.g., a phone, cellular phone, orcomputer) to the core network. While only a single load balancercomponent 306 is shown, some examples may include additional loadbalancer components 306. The load balancer component 306 is connected tothe service instances through connections 318. The connections 318 arepart of the virtual network associated with the VNF 314.

In the present example, there are three service component instances308-1, 308-2, 308-3. Service component instance 308-1 runs on virtualmachine 302-3. Service component instance 308-2 runs on virtual machine302-4. Service component instance 308-3 runs on virtual machine 302-5.The service component instances 308 perform the primary servicingfunctions of the VNF 314. Thus, when more subscribers are using thetelecommunication service associated with the VNF 314, a greaterpercentage of the capacity of the VNF 314 becomes fuller.

According to one example, when utilization of the VNF 314 exceeds acertain percentage of total capacity, the VNF 314 can scale to handlethe additional demand for services. For example, if the VNF 314 reaches80 percent of total capacity, the VNF 314 can start up an additionalservice component instance 308-4 to increase the total capacity of theVNF 314. Conversely, if the utilization of capacity drops below adefined threshold, such as 50 percent, then one of the service componentinstances 308 can be decommissioned.

When a new virtual machine 302-6 is created for the purpose of running anew VNF component 308-4, new connections 317, 319 are established toconnect that new virtual machine 302-6 to other virtual machines 302-1,302-2 that run other VNF components. Specifically, the new virtualmachine 302-6 is connected to the virtual machines 302-1, 302-2 that runthe database component 304 and the load balancer component 306. Theseconnections are established by the SDN controller (e.g. 208, FIG. 2) atthe request of the VNF manager (e.g. 204, FIG. 2). The automaticestablishment of the connections 317, 319 through use of the SDNcontroller allows for the elasticity of the VNF 314 to perform moreefficiently. This consumes fewer resources and thus allows theunderlying physical systems to operate more efficiently.

FIG. 4 is a signal diagram showing an illustrative method forestablishing network connections to dynamically created VNF components.According to the present example, the method 400 involves an EMS 402, aVNF manager 404, a VNF 406, an image service 408, a compute controller410 of a virtual infrastructure manager, an SDN controller 412, and aload balancer 414. The EMS 402 corresponds to the EMS 122 describedabove. The VNF manager 404 corresponds to the VNF manager 124 describedabove. The VNF 406 corresponds to the VNF 120 described above. Thecompute controller 410 corresponds to the compute controller 134described above. The SDN controller 412 corresponds to the SDNcontroller 132 described above. The load balancer 414 corresponds to theload balancer component 306 described above.

According to the present example, the VNF 406 reports various statisticsto the EMS 402 via signal 416. Such statistics relate to performance ofthe VNF 406. In some cases, various alarms may be used to notify the EMS402 of various situations. For example, if the VNF 406 reaches 80percent of capacity, the VNF 406 can notify the EMS 402 of such eventvia signal 416. Communication between the VNF 406 and the EMS 402 may bedone through various protocols and architectural styles, including, butnot limited to, Simple Object Access Protocol (SOAP), eXtensible MarkupLanguage (XML), Simple Network Management Protocol (SNMP), andRepresentational State Transfer (REST).

The EMS 402 processes the data received from the VNF 406 and providesrelevant processed data to the VNF manager 404 via signal 418. Therelevant processed data may be transferred in one of a variety of ways.In one example, the VNF manager 404 subscribes to certain points of datathat are of interest. For example, the VNF manager 404 may wish to knowwhen capacity of the VNF reaches a predefined threshold, such as 80percent. In another example, the VNF may send signal 416 directly to theVNF Manager. The VNF manager 404 may wish to know this information sothat it can provision another service component (e.g. 308, FIG. 3). TheVNF manager 404 may also wish to know when capacity drops below apredefined threshold, such as 50 percent. The VNF manager 404 may wishto know this information so it can decommission an instance to savecosts and free up computing resources for other applications. While thepresent example involves thresholds of 50 percent and 80 percent, it isunderstood that other thresholds may be used as desired. In someexamples, a VNF communicates directly to the VNF manager. In otherwords, signal 416 is sent both to the EMS, and to the VNF manager. Then,the VNF manager can make better real-time decisions because it isdirectly monitoring the VNF without going through the EMS.

After the VNF manager 404 determines that a new service instance is tobe provisioned, it prompts the image service 408 to verify that theproper virtual machine image is available via signal 420. The imageservice 408 provides discovery, registration, and delivery services forphysical and virtual machine images. In some examples, the image service408 does not store images itself. Instead, the image service 408maintains a catalog of images and can provide client systems withstorage locations of such images. One example of an image store isOpenStack Foundation's service provided under the name Glance™. In oneexample, the virtual machine image that is sought is one that isconfigured specifically for the VNF 406. For example, if the VNF 406 isan SBC, then the virtual machine image is one that is configured to runthe VNF component of the SBC.

After the VNF manager 404 verifies that the desired virtual machineimage is available, the VNF manager 404 instructs the compute controller410 to provision the additional virtual machine (e.g. 302-6, FIG. 3)within the cloud computing environment associated with the VNF 404. Thisis done via signal 422. The compute controller 410 is responsible formanaging the plurality of virtual machines running on physical machines.The compute controller 410 may be a component of the VirtualInfrastructure Manager (124, FIG. 1) described above. The computecontroller 410 then creates a new virtual machine using the imageidentified by the image service 408. One example of compute controlleris that provided by the OpenStack Foundation under the name Nova™.

After the compute controller 410 creates the new virtual machine, itresponds to the VNF manager 404 via signal 424 to provide various dataabout the newly created virtual machine. Such data may include thenetwork address of the physical server on which the new virtual machineis running as well as any other addressing information that allows theVNF manager 404 to communicate with the new virtual machine. The datamay include other information about the virtual machine image itself andother forms of metadata.

According to the present example, the VNF manager 404 sends aninstruction via signal 426 to the SDN controller 412. As describedabove, the SDN controller 412 manages various network components of anetwork infrastructure. One example of an SDN controller 412 is thatprovided by the OpenStack Foundation under the name Neutron™. In thepresent example, the SDN controller 412 manages the network componentsof a virtual network that is used to interconnect the various componentsof the VNF 406. In response to the instruction sent via signal 426, theSDN controller 412 establishes connections (e.g. 317, 319, FIG. 3)between the virtual machines that run other VNF components, such as thedatabase and load balancer components, and the new virtual machine.Establishing such connections may include assigning a virtual networkaddress to the new virtual machine. Additionally, establishing theconnections may include configuring various virtual network componentssuch as virtual routers and virtual switches. Such virtual networkcomponents are thus configured to forward traffic to and from thevirtual address assigned to the new virtual machine. The SDN controller412 also configures the APIs that interact with the VNF manager 404.

The VNF 406 may be one of several VNFs used to provide atelecommunication service. It may be beneficial to notify other VNFs ofa change in capacity of the VNF 406. As will be described in furtherdetail below, the VNF manager 404 may also communicate with SDNcontrollers that are external to the cloud computing environmentassociated with the VNF 406 and the SDN controller 412.

After the SDN controller 412 establishes the appropriate connections forthe new virtual machine, the VNF manager 404 then notifies the EMS 402that the new virtual machine is available via signal 428. The VNFmanager 406 also provides the EMS 402 with various data about the newvirtual machine. Such data may include the virtual network address asconfigured by the SDN controller 412. The data may also include the typeof instance used to create the virtual machine.

The EMS 402 then provisions the new VNF component within the VNF 406 atsignal 430. In some cases, the software for the VNF component is alreadypart of the virtual machine image. In some cases, however, the EMS 402may install any software associated with the VNF component on thevirtual machine. The new VNF component is now ready to be used withinthe VNF 406. This increases the total capacity of the VNF 406.

The EMS 402 then notifies the VNF manager 404 that the provisioning ofthe new VNF component is complete via signal 432. The VNF manager 404can then manage the new VNF component like the other VNF components thatare currently operating. The VNF manager 404 also notifies the loadbalancer 414, via signal 434, that there is a new VNF component to whichdemand can be distributed. Thus, when the load balancer 414 receives arequest for service, it can forward that request to any one of theservice components, including the newly established VNF component.

A similar process is used to remove a VNF from service when demand forservices drops below a defined threshold of total capacity.Specifically, the EMS 402 may determine that demand has dropped belowthe defined threshold and notify the VNF manager accordingly. The VNFmanager 404 can then instruct the compute controller 410 to take downthe virtual machine associated with one of the VNF components. The VNFmanager 404 can also instruct the SDN controller 412 to take downconnections to the virtual machine. The SDN controller 412 can thenreconfigure the network accordingly.

FIG. 5 is a diagram showing communication between SDN controllers 506,510. As described above, when the VNF manager 504 instructs the SDNcontroller 506 to connect the new virtual machine to the virtualnetwork, the VNF manager 504 may also communicate with an external SDNcontroller 510. A telecommunication service that utilizes NFV mayinclude several VNFs that together provide the telecommunicationservice. These VNFs may be associated with different geographic regions.For example, a first VNF may be associated with a first geographiclocation that is associated with a first cloud computing environment502. A second VNF is associated with a second cloud computingenvironment 508 at a second geographic location. In one example, thedifferent geographic locations are different cities, and each cloudcomputing environment 502, 508 is implemented in a physically separategroup of computers at its respective geographic location.

When the VNF manager 504 for the VNF within the first cloud computingenvironment instructs the internal SDN controller 506 to establish newconnections (e.g. 317, 319, FIG. 3) to the new virtual machine, the VNFmanager 504 may also notify an external SDN controller 510 associatedwith the second cloud computing environment. This is done via signal514. The VNF manager 504 may communicate with the external SDNcontroller 510 using a variety of protocols, including OpenFlow.

It is beneficial to inform the external SDN controller 510 that the VNFmanaged by the VNF manager 504 has increased capacity. The external SDNcontroller 510 may thus make adjustments to the network components itcontrols in order to allow more traffic to be passed along line 516between the different cloud computing environments.

FIG. 6 is a flowchart showing an illustrative method for establishingnetwork connections to dynamically created VNF components. According tothe present example, the method 600 includes a step 602 for managing aVNF that includes a plurality of VNF components, the VNF componentsbeing interconnected over a network. This step 602 may be performed by aVNF manager (e.g., 126, FIG. 1). The network may be a virtual networkthat interconnects the VNF components.

The method 600 further includes a step 604 for instructing a virtualinfrastructure manager (e.g. 124, FIG. 1) to provision an additionalvirtual machine in response to utilization of current capacity of theVNF exceeding a defined threshold. This step corresponds to signal 422in FIG. 4. In one example, if utilization of the VNF reaches 85 percentof total capacity, this can trigger the VNF manager to instruct thevirtual infrastructure manager to provision an additional virtualmachine.

The method 600 further includes a step 606 for instructing an SDNcontroller (e.g. 130, FIG. 1) to connect the additional virtual machineto the network. This step 606 corresponds to signal 426 in FIG. 412.More specifically, the SDN controller connects the new virtual machineto the virtual network associated with the VNF and thus establishesconnections between the new virtual machine and other virtual machinesthat run other components of the VNF.

The method 600 further includes a step 608 for provisioning anadditional VNF component on the additional virtual machine. This step608 corresponds to signal 430 in FIG. 4. The additional VNF componentincreases the total capacity of the VNF. Thus, the VNF adapts tochanging demand for services. Using principles described herein, a VNFcan more efficiently adapt to demand for services. Specifically, byusing SDN to establish virtual network connections to newly establishedVNF components, the newly established VNF components can be moreefficiently brought to a state at which they can operate within the VNFand thus provide additional capacity. As described above, a similarprocess can be used to reduce the number of VNF components.

Some examples of processing systems described herein may includenon-transitory, tangible, machine readable media that include executablecode that when run by one or more processors may cause the one or moreprocessors to perform the processes of methods as described above. Somecommon forms of machine readable media that may include the processes ofmethods are, for example, floppy disk, flexible disk, hard disk,magnetic tape, any other magnetic medium, CD-ROM, any other opticalmedium, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip orcartridge, and/or any other medium from which a processor or computer isadapted to read.

Although illustrative embodiments have been shown and described, a widerange of modification, change and substitution is contemplated in theforegoing disclosure and in some instances, some features of theembodiments may be employed without a corresponding use of otherfeatures. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. Thus, the scope of theinvention should be limited only by the following claims, and it isappropriate that the claims be construed broadly and in a mannerconsistent with the scope of the embodiments disclosed herein.

What is claimed is:
 1. A method comprising: with a Virtual NetworkFunction (VNF) manager that manages a VNF that includes plurality of VNFcomponents running on a plurality of virtual machines, determining thatan additional VNF component should be provisioned on an additionalvirtual machine; in response to the determining that the additional VNFcomponent should be provisioned, instructing a compute controller toprovision the additional virtual machine; with the VNF manager,instructing a Software-Defined Networking (SDN) controller to connectthe additional virtual machine to the plurality of virtual machinessupporting the plurality of VNF components, wherein the additionalvirtual machine comprises a preinstalled VNF component that supports theplurality of VNF components; and provisioning the additional VNFcomponent on the additional virtual machine.
 2. The method of claim 1,wherein determining that the additional VNF component should beprovisioned comprises receiving data from an Element Management System(EMS) associated with the VNF, or receiving data directly from the VNF.3. The method of claim 2, wherein the EMS is configured to send the datain response to detecting a change in utilization of the VNF.
 4. Themethod of claim 2, wherein configuring the additional VNF componentcomprises providing characteristic information about the additionalvirtual machine to the EMS.
 5. The method of claim 4, wherein thecharacteristic information includes a network address of the additionalvirtual machine.
 6. The method of claim 1, further comprising, with theVNF manager, directing the compute controller to utilize a referencedvirtual machine image, the virtual machine image comprising theadditional VNF component.
 7. The method of claim 1, further comprising,with the compute controller, provisioning the additional virtualmachine.
 8. The method of claim 1, wherein the SDN controller managesthe network, the network being associated with a cloud computingenvironment.
 9. The method of claim 8, further comprising, with the VNFmanager, sending information related to an increase in capacity to anexternal SDN controller, the external SDN being external to the cloudcomputing environment.
 10. The method of claim 1, wherein the VNFcomponents include a database, a load balancer, and a plurality ofservice instances.
 11. A method comprising: managing a Virtual NetworkFunction (VNF) that includes a plurality of VNF components, the VNFcomponents being interconnected over a network; in response toutilization of current capacity of the VNF exceeding a definedthreshold, instructing a compute controller to provision an additionalvirtual machine; with a VNF manager that manages the VNF, instructing aSoftware-Defined Networking (SDN) controller to connect the additionalvirtual machine to virtual machines supporting the plurality of VNFcomponents, wherein the additional virtual machine comprises apreinstalled VNF component that supports the plurality of VNFcomponents; and provisioning an additional VNF component on theadditional virtual machine.
 12. The method of claim 11, furthercomprising, with the SDN controller, establishing a connection betweenthe additional virtual machine and a virtual machine that runs adatabase VNF component.
 13. The method of claim 11, further comprising,with the SDN controller, establishing a connection between theadditional virtual machine and a virtual machine that runs a loadbalancing VNF component.
 14. The method of claim 13, wherein the loadbalancing VNF component acts as an access point between the network andan access network.
 15. The method of claim 11, wherein the additionalVNF component creates an increased capacity of the VNF.
 16. The methodof claim 15, further comprising, notifying an external SDN controller ofthe increased capacity.
 17. The method of claim 11, further comprising,in response to utilization of current capacity of the VNF dropping belowa defined threshold, instructing the compute controller to release oneof the plurality of VNF components.
 18. A system comprising: aprocessor; and a memory comprising machine readable instructions thatwhen executed by the processor, cause the system to: manage a VirtualNetwork Function (VNF) that includes a plurality of VNF components, theVNF components being interconnected over a network; instruct a computecontroller to provision an additional virtual machine in response toutilization of current capacity of the VNF exceeding a definedthreshold; with a VNF manager that manages the VNF, instruct aSoftware-Defined Networking (SDN) controller to connect the additionalvirtual machine to virtual machines supporting the plurality of VNFcomponents, wherein the additional virtual machine comprises apreinstalled VNF component that supports the plurality of VNFcomponents; and provision an additional VNF component on the additionalvirtual machine.
 19. The system of claim 18, wherein the networkcomprises a virtual network that interconnects the VNF components. 20.The system of claim 18, wherein the VNF comprises one of: a SessionBorder Controller (SBC), an Internet Protocol (IP) Multimedia Subsystem(IMS) network function, and a telephony application server.